Skip to main content
Version: 9.3

Download Manager Widget

The Download Manager widget allows users to access and manage exported files in one place.

To display exports for a specific user in the Download Manager, ensure that the same userId and clientId values are set across all widgets used for exports. If these values are not set, the exports do not display in the Download Manager.

Embeddable Script

<!-- Tag -->
<qrvey-download-manager settings="config"></qrvey-download-manager>

<!-- Config -->
<script>
var config = {
apiKey: "<YOUR_PRIVATE_API_KEY>",
domain: "<DOMAIN>",
userId: "<USER_ID>",
showModalButton: "true"
};
</script>

<!-- Launcher -->
<script src="https://<WIDGETS_URL>/qrvey_download_manager/qrvey-download-manager/qrvey-download-manager.js"></script>
<script type="module" src="https://<WIDGETS_URL>/qrvey_download_manager/qrvey-download-manager/qrvey-download-manager.esm.js"></script>
<script> window.config = config;</script>

Configuration Object

PropertyTypeDescriptionRequired
apiKeyStringYour organization’s unique API key, required to access the Qrvey platform.Required if qvToken is not provided.
qvTokenStringEncrypted token used for secure authentication.Required if apiKey is not provided.
domainStringBase URL of your Qrvey instance.Y
userIdStringQrvey platform user who initiated exports in another widget (for example, dashboard, single panel). To see the exports, the userId and clientId provided to the Download Manager widget must match those used in the other widget.N
emailStringDefines the email associated with the clientId.N
clientIdStringThe clientId, or unique identifier, for the tenant end user working with the Download Manager. If authenticating with a qvToken, pass this into the token for authentication.Y
orgIdStringOrganization ID of the user accessing the widget. When matched with the orgId in the orgs object, users of that orgId will be listed under the Subscribe tab in the Export modal. For more information, see Subscriptions.N
orgsArray(Object)The orgs object determines the list of users available in the Subscribe Specific People field beneath the Subscribe tab of the Export modal. Used in embedded scenarios to allow other users to subscribe to exports. For more information, see Orgs Object.N
i18nObjectDefines the language to be displayed in the static text of the widget as well as the dataset columns. For more information, see i18n Object.N
timezoneObjectConfigures the timezone in the widget.N
customizationObjectAllows customization of the widget sections. For more information, see Customization.N

Orgs Object

The orgs object defines a list of users and roles grouped by organization. In embedded scenarios, the object helps to define a list of other users who can subscribe to exports. When multiple organizations are passed in the orgs object, the Export modal uses the object where orgId matches the orgId of the user accessing the widget, filtering out users from other organizations.

PropertyTypeDescription
orgIdStringOrganization ID of the users listed in the users array. When matched with the orgId of the user accessing the widget, users of the orgId will be listed in the Subscribe tab of the Export modal.
usersArray(Object)List of users available to subscribe to scheduled exports under the organization in orgId. Each user is defined by clientId and email.
users.clientIdStringThe clientId of the user who can subscribe to exports.
users.emailStringEmail address of the user who can subscribe to exports. The Export modal lists email addresses in the Subscribe Specific People field.
"orgs": [
{
"orgId": "1",
"users": [
{
"clientId": "john_smith",
"email": "john_smith@qrvey.com"
}
]
}
]

Timezone

PropertyTypeDescriptionRequired
offsetStringAn attribute inside timezone that specifies the timezone offset. Accepted formats include +03:00, -03, and so on.N

i18n

For more information, see Internationalization, Step by Step.

PropertyTypeDescriptionRequired
langStringThe language to use for the UI. Example: "es".Y
localeStringThe locale code to use for date and number formatting. Example: "es-ES".N

Customization

Use a customization object to modify the structure of the Download Manager widget. By applying fine-grained control over the visibility and behavior of its UI components, teams can tailor the interface based on user roles, product branding, or embedding context.

This recursive module allows you to add keep and remove to the main Download Manager page (main view) or within the schedule page (detail view).

Conditional Definition

You can define the following conditional attribute for the Download Manager. Place the conditional property directly in the customization object to apply these changes globally to the Download Manager widget.

ConditionValue
executionTypescheduled, others

Example:

{
"customization": {
"conditional": [
{
"condition": {
"field": "executionType",
"operator": "!=",
"value": "scheduled"
},
"remove": [
"assetList.asset.optionMenu.qMoreInfo"
]
}
]
}
}

Global Key Verbs

The global key verbs, keep and remove, are evaluated in order of precedence:

  1. remove: Removes matching keys.
  2. keep: Keeps matching keys while removing all others at the same level.

Within each view (for example, global, main, or detail), you can include the following:

KeyTypeDescription
removestring[]List of UI controls to hide.
keepstring[]List of UI controls to retain (others at the same level are removed).
defaultsobjectDefault settings for specific functionality.
conditionalarrayList of objects, each of which includes a condition and an action to keep or remove.
{
"customization": {
"views": {
"main": {
"conditional": [
{
"condition": {
"field": "executionType",
"operator": "=",
"value": "scheduled"
},
"remove": [
"moreInfoModal.qOwner",
"moreInfoModal.qApplication"
]
}
]
},
"detail": {
"remove": [
"bottomBar"
]
}
},
"defaults": {
"filters": {
"sourceWidget": [
"DASHBOARD"
]
}
},
"conditional": [
{
"condition": {
"field": "executionType",
"operator": "!=",
"value": "scheduled"
},
"remove": [
"assetList.asset.optionMenu.qMoreInfo"
]
}
]
}
}

Customization Properties

The following tables describe customization options for the Download Manager widget.

Customization Defaults

PropertyTypeValuesDescription
filters.fileTypeArrayPDF, JPG, CSV, XLS, ZIPList of file types to filter by. The filter ignores values outside of the accepted list.
filters.executionArraySCHEDULED, OTHERSList of execution types to filter by. The filter ignores values outside of the accepted list.
filters.sourceWidgetArrayANALYZE, AUTOMATION, DASHBOARD, LEGACY_DASHBOARD, PIXEL_PERFECT, SUBSCRIPTIONList of source widget types to filter by. The filter ignores values outside of the accepted list.
filters.searchByNamestringExample: Bar chart1.jpgExport name to filter by.
filters.assetArrayExample: assetId1, assetId2Asset IDs used as filter criteria. To take effect, set the sourceWidget with a single value.
widgetViewstringmodal | tableDetermines how the component is displayed. If set to table, the component displays as a page. Default is modal (popup window) when showModalButton is set to true.

The following example shows the default filter options displayed when the Download Manager widget loads.

{
"customization": {
"defaults": {
"filters": {
"fileType": ["PDF", "CSV"],
"execution": ["SCHEDULED"],
"sourceWidget": ["DASHBOARD"],
"searchByName": "Bar chart1.jpg"
},
"widgetView": "table"
}
}
}

Main View

The following table displays options that you can show or hide in the widget's main view, which lists all local and scheduled exports.

KeyDescriptionAllows Conditional
headerWidget header.-
header.qTitlePrimary title displayed in the widget's main header.-
controlBarTop toolbar containing global search and filtering options for the asset list.-
controlBar.qFilterByFileTypeFilter control to filter by file type (such as PDF and Excel).-
controlBar.qFilterByFileType.qTypePDFFilter list option to display PDF selection in the Filter by File Type dropdown.-
controlBar.qFilterByFileType.qTypeJPGFilter list option to display JPG selection in the Filter by File Type dropdown.-
controlBar.qFilterByFileType.qTypeCSVFilter list option to display CSV selection in the Filter by File Type dropdown.-
controlBar.qFilterByFileType.qTypeExcelFilter list option to display XLS selection in the Filter by File Type dropdown.-
controlBar.qFilterByFileType.qTypeZIPFilter list option to display ZIP selection in the Filter by File Type dropdown.-
controlBar.qFilterByExecutionFilter control to distinguish between scheduled tasks and one-time exports.-
controlBar.qFilterByExecution.qExecScheduledFilter list option to display recurring scheduled exports.-
controlBar.qFilterByExecution.qExecOthersFilter list option to display manual or ad-hoc exports.-
controlBar.qFilterByWidgetFilter control to filter by source widget.-
controlBar.qFilterByWidget.qWidgetAnalyzeFilter list option to display exports generated from the Analytic Suite widget.-
controlBar.qFilterByWidget.qWidgetAutomationFilter list option to display exports triggered by automated workflows.-
controlBar.qFilterByWidget.qWidgetDashFilter list option to display exports originating from standard dashboards.-
controlBar.qFilterByWidget.qWidgetLegacyDashFilter list option to display exports from legacy (previous version) dashboards.-
controlBar.qFilterByWidget.qWidgetSubscriptionsFilter list option to display exports linked to legacy dashboard subscriptions.-
controlBar.qFilterByWidget.qWidgetPPRFilter list option to display exports from Pixel-Perfect Reports.-
controlBar.qFilterByAssetFilter control to select specific assets for a widget selected in the Filter By Source Widget dropdown.-
controlBar.qSearchText field to search and run live filters on the asset list.-
controlBar.qRemoveFiltersControl to clear all active filter selections and reset the view.-
assetListMain UI container that lists all exports and schedules.-
assetList.assetA list of all exports and schedules. When this property is removed, returns a list of exports and schedules without details.-
assetList.asset.qDrillToDetailAction to open the detailed view of a specific schedule.-
assetList.asset.qUnsubscribeOption to opt out from a specific report schedule.-
assetList.asset.qSubscribeOption to subscribe to a specific report schedule.-
assetList.asset.optionMenuThree-dot menu containing specific actions for each asset.TRUE
assetList.asset.optionMenu.qDeleteOption to delete the file or schedule from the main view.TRUE
assetList.asset.optionMenu.qMoreInfoOption to show detailed information for the file inside a schedule.TRUE
assetList.asset.optionMenu.qDeleteAllFilesOption to display the bulk action to remove all files associated with a particular schedule.-
assetList.asset.optionMenu.qEditSchedOption to open the configuration modal to modify an existing schedule.-
assetList.asset.optionMenu.qPauseRestartSchedOption to stop a recurring schedule without deleting it.-
assetList.asset.optionMenu.qUnsubscribeOption to remove the user's subscription from the selected schedule.-
assetList.asset.optionMenu.qSubscribeOption to add the user's subscription to the selected schedule.-
assetList.asset.tableContainer structure with data columns. Removing this container also removes the columns in the table, leaving only the name and option menu columns.-
assetList.asset.table.qTypeControls the Type column that lists visualizations for file format.-
assetList.asset.table.qScheduleControls the Schedule column that lists schedules.-
assetList.asset.table.qSizeControls the Size column for the file size of the generated export.-
assetList.asset.table.qCreationDateControls the Creation Date column for the timestamp marking when the file was created.-
assetList.asset.table.qExpirationDateControls the Expiration Date column for the future date when the file is removed from storage.-
assetList.asset.table.qDownloadControls the Download column for the download links.-
downloadModalPop-up window for editing export schedules.-
downloadModal.qScheduleOptionOn/Off radio button to enable schedule within the download modal. When removed, users can still edit the existing schedule.-
downloadModal.qSubscribeOptionSubscribe tab within the download modal. When removed, users can still edit the existing schedule.-
downloadModal.qSubscribeExternalUsersSubscribing users who don’t exist in the Qrvey platform.-
moreInfoModalOption to open More Info modal that provides details about the export.-
moreInfoModal.qFileTypeLabel in More Info modal showing the format of the export.-
moreInfoModal.qSourceLabel in More Info modal showing the source widget.-
moreInfoModal.qOwnerLabel in More Info modal showing the user who initiated the export.TRUE
moreInfoModal.qApplicationLabel in More Info modal showing the application where the export was initiated.TRUE
moreInfoModal.qPathLabel in More Info modal showing the path where the exported asset is located.TRUE

Detail View

The following table displays customization keys to control the options that you can show or hide in the widget's detail view. When selected, the detail view displays the files generated by a scheduled export.

KeyDescription
headerHeader area specifically for the schedule detail view.
header.qTitleTitle of the current schedule being viewed.
controlBarTop toolbar containing global search.
controlBar.qSearchText field to search and run live filters on the asset list.
controlBar.qScheduleDetailToolbar section showing the parameters of the active schedule.
controlBar.qFilesExportedToolbar entry displaying the total number of files generated by this schedule.
controlBar.qMoreInfoOption to open More Info modal that provides details about the schedule.
assetListMain UI container that lists all scheduled exports.
assetList.assetA list of scheduled exports. Removing this property returns a list of exports without details.
assetList.asset.optionMenuThree-dot menu containing specific actions for each asset.
assetList.asset.optionMenu.qDeleteOption to delete the file from the detail view.
assetList.asset.optionMenu.qMoreInfoOption to show detailed information for the file inside a schedule.
assetList.asset.tableMain UI container structure with data columns. Removing the container removes the columns in the table, leaving only the name and option menu columns.
assetList.asset.table.qTypeControls the Type column that lists visualizations for file format.
assetList.asset.table.qSizeControls the Size column for the file size of the generated export.
assetList.asset.table.qCreationDateControls the Creation Date column for the timestamp marking when the file was created.
assetList.asset.table.qExpirationDateControls the Expiration Date column for the future date when the file is removed from storage.
assetList.asset.table.qDownloadControls the Download column for the download links.
bottomBarFixed bar at the bottom for quick global actions.
bottomBar.qDeleteAllFilesDelete All Files button to delete all files from this schedule.
bottomBar.qEditSchedEdit schedule button to edit the current schedule.
bottomBar.qPauseRestartSchedPause/Restart Schedule button to pause or restart the current schedule.
bottomBar.qDeleteDelete Schedule button to remove the schedule entirely.
moreInfoModalOption to open More Info modal that provides details about the export.
moreInfoModal.qFileTypeLabel in More Info modal showing the format of the export.
moreInfoModal.qSourceLabel in More Info modal showing the source widget.
moreInfoModal.qOwnerLabel in More Info modal showing the user who initiated the export.
moreInfoModal.qApplicationLabel in More Info modal showing the application where the export was initiated.
moreInfoModal.qPathLabel in More Info modal showing the path where the exported asset is located.
downloadModalPop-up window for editing export schedules.
downloadModal.qScheduleOptionOn/Off radio button to enable schedule within the Download modal. When removed, users can still edit the existing schedule.
downloadModal.qSubscribeOptionSubscribe tab within the download modal. When removed, users can still edit the existing schedule.

Events

openDownloadManager()

Opens the Download Manager modal programmatically.

<qrvey-download-manager settings="downloadManagerConfig"></qrvey-download-manager>
<button onclick="openModal()">Open Modal</button>
function openModal() {
const el = document.querySelector('qrvey-download-manager');
el.openDownloadManager();
}

qvDMOpen

Opens the modal by dispatching the qvDMOpen event.

function openDownloadManager() {
const myEvent = new CustomEvent('qvDMOpen');
window.dispatchEvent(myEvent);
}

qvDMOpened

Triggered when the modal is opened.

window.addEventListener('qvDMOpened', () => {
// Actions when modal opens
});
// Subscription toggle within the detail context. |
| downloadModal.qSubscribeExternalUsers | Option t

### `qvDMClosed`

Triggered when the modal is closed.

```js
window.addEventListener('qvDMClosed', () => {
// Actions when modal closes
});

qvDMSetFilters

Sets filters in the widget programmatically.

window.dispatchEvent(new CustomEvent('qvDMSetFilters', {
detail: {
fileType: ["PDF", "CSV"],
execution: ["OTHERS"],
sourceWidget: ["ANALYZE"],
searchByName: "Bar chart1.jpg",
asset: ["assetId1", "assetId2"]
}
}));